From: Jonathan Lebon Date: Mon, 30 Jul 2018 15:11:34 +0000 (-0400) Subject: lib/commit: Only auto-update summary if refs were written X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~20^2~20 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=521e0ec3ac87b539190f3a6cc310237fbaf39517;p=ostree.git lib/commit: Only auto-update summary if refs were written Closes: #1693 Approved by: mwleeds --- diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index dd225e63..d464cd0a 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -2195,19 +2195,21 @@ ostree_repo_commit_transaction (OstreeRepo *self, if (self->txn.refs) if (!_ostree_repo_update_refs (self, self->txn.refs, cancellable, error)) return FALSE; - g_clear_pointer (&self->txn.refs, g_hash_table_destroy); if (self->txn.collection_refs) if (!_ostree_repo_update_collection_refs (self, self->txn.collection_refs, cancellable, error)) return FALSE; - g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy); /* Update the summary if auto-update-summary is set, because doing so was * delayed for each ref change during the transaction. */ - if (!_ostree_repo_maybe_regenerate_summary (self, cancellable, error)) + if ((self->txn.refs || self->txn.collection_refs) && + !_ostree_repo_maybe_regenerate_summary (self, cancellable, error)) return FALSE; + g_clear_pointer (&self->txn.refs, g_hash_table_destroy); + g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy); + self->in_transaction = FALSE; if (!ot_ensure_unlinked_at (self->repo_dir_fd, "transaction", 0))